A volte è necessario convertire una tabella a croce (pivot) in una tabella piatta. Questa procedura si chiama " raddrizzamento dei dati "
Il programma LibreOffice Calc non dispone di una funzionalità standard per convertire le tabelle pivot in " Piatto ", ma puoi scrivere tu stesso la procedura corrispondente. Vediamo come farlo.
Diamo un'occhiata all'immagine qui sotto per comprendere più chiaramente l'essenza del problema. A sinistra abbiamo una tabella sotto forma di matrice (tabella pivot) e a destra - una tabella normale con colonne (tabella piatta):
Quando espandi una tabella, decomprimi la coppia attributo-valore che è l'intersezione delle colonne nella tabella a matrice e le riorienti nelle colonne appiattite nella tabella piatta:
Apri il menu Tools - Macros - Edit Macros..., seleziona Module1 e copia il seguente testo nel modulo:
Sub UnPivotTable ' moonexcel.com.ua Dim oBook As Object Dim oActiveSheet As Object Dim oSelRange As Object Dim oNewSheet As Object Dim i As Long Dim iTopLabelRowCount As Integer Dim iSideLabelColCount As Integer oBook = ThisComponent oActiveSheet = oBook.CurrentController.ActiveSheet oSelRange = oBook.CurrentSelection ' Aggiungi un nuovo foglio oBook.Sheets.insertNewByName("UnPivoted Table",0) oNewSheet = oBook.Sheets(0) ' Determina la dimensione delle intestazioni iTopLabelRowCount = InputBox(" Quante righe nell'intestazione superiore? ") iSideLabelColCount = InputBox(" Quante colonne nell'intestazione laterale? ") i = 0 For r = (iTopLabelRowCount + 1) To oSelRange.Rows.Count For c = (iSideLabelColCount + 1) To oSelRange.Columns.Count For j = 1 To iSideLabelColCount oNewSheet.getCellByPosition(j-1, i).Formula = oSelRange.getCellByPosition(j-1, r-1).Formula Next j For k = 1 To iTopLabelRowCount oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, k-1).Formula Next k oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, r-1).Formula i = i + 1 Next c Next r End Sub
Quindi chiudi Macro Editor e torna al foglio di lavoro in LibreOffice Calc. Seleziona l'intera tabella con le intestazioni in alto e a sinistra ed esegui la nostra nuova macro tramite il menu Tools - Macros - Run Macro...
La macro inserirà un nuovo foglio con nome nella cartella di lavoro
Puoi anche usare l'utility "Tabella pivot (Unpivot)" installando l'estensione YLC_Utilities.oxt .
Successivamente, questa utilità sarà disponibile in tutti i file che verranno aperti in LibreOffice Calc.